/**
 * Classe d'interface
 */
function Inter(moteur) {
    this.moteur = moteur;
    
    this.place = null;
    this.initEvents();
}

/**
 * Initialisation des évenements
 */
Inter.prototype.initEvents = function() {
    var inter = this;
    $('#creer-partie').click(function() {
        inter.moteur.creerPartie(prompt("Nom de la partie :"));
    });
    $('#parties').click(function(e) {
        var $target = $(e.target);
        if($target.hasClass('partie')) inter.moteur.chargerPartie($target.data('idpartie'));
    });
    $('#cartes').click(function(e) {
        var $target = $(e.target);
        if($target.hasClass('carte')) inter.moteur.poserCarte($target.data('idcarte'));
    });
}

/**
 * Affiche la demande de login
 */
Inter.prototype.afficherLogin = function() {
    this.moteur.login(prompt("Frappez votre login :"));
}

/**
 * Affiche les parties
 */
Inter.prototype.afficherParties = function(parties) {
    $("#parties").html("");
    for(var i in parties) {
        var partie = parties[i];
        $("#parties").append('<div class="partie" data-idpartie="'+partie.id_partie+'">Nom : '+partie.nom_partie+' Nb Joueurs : '+partie.joueurs+'</div>');
    }
}

/**
 * Afficher le chargement d'une partie
 */
Inter.prototype.afficherChargementPartie = function() {
   this.logJeu('Chargement de la partie en cours...');
}

/**
 * Afficher une partie
 */
Inter.prototype.afficherPartie = function(place, joueurs) {
    this.place = place;
    this.logJeu('Ma place '+place);
    for(var i in joueurs) {
        var joueur = joueurs[i];
        this.logJeu('Joueur : '+joueur.nom_joueur+' à la place '+joueur.place);
    }
}

/**
 * Afficher un nouveau joueur
 */
Inter.prototype.afficherNouveauJoueur = function(nomJoueur, place) {
    this.logJeu('Nouveau joueur à rejoint la partie '+nomJoueur+' à la place '+place);
}

/**
 * Afficher un mouvement de carte
 */
Inter.prototype.afficherMouvementCarte = function(de, vers, idCarte) {
    if(vers == this.place) $('#cartes').append('<span class="carte" data-idcarte="'+idCarte+'">'+idCarte+'</span> ');
    if(de == this.place) $('#cartes:data(idcarte='+idCarte+'):first').detach();
    this.logJeu('Carte '+idCarte+' part de '+de+' vers '+vers);
}

/**
 * Afficher un tour
 */
Inter.prototype.afficherTourDe = function(de) {
    this.logJeu('C\'est le tour de '+de);
}

/**
 * Ajoute une ligne au bloc 'jeu'
 */
Inter.prototype.logJeu = function(texte) {
    $('#jeu').append('<div>'+texte+'</div>');
}